Computing devices today have the ability to multi-task on many levels. For example, a user of a computing device can have multiple applications running simultaneously while entering input from multiple input devices (keyboard, touch screen, mouse, etc.). Subsequently, each of these applications, input devices, and so forth, vie for a processor's time. The associated computing device and/or processor can manage the multi-tasking in several ways, such as by prioritizing and/or splitting time between those requesting access to the processor. For instance, the computing device can assign priority rankings to applications and/or threads, and distribute access to the processor according to the priority ranking. This ensures that those requesting access to the processor will eventually receive an allotment of time on the processor. Sometimes, however, a requesting task has more urgent or time-sensitive needs. In these cases, a requesting application and/or thread can be set with a higher priority than a currently running thread, thus causing the currently running thread to be pre-empted. Alternately, devices request processor time through an interrupt mechanism, such as a physical hardware interrupt or a software interrupt.
When a processor receives an interrupt, the task currently being executed by the processor is typically suspended in order to service the interrupt. Consider a simplified case where an application has temporary ownership of the processor to update a display with an image, and a user decides to enter a mouse click or touch screen input during the display update as a means to pre-emptively zoom in on the image. Generally speaking, the mouse click generates an interrupt to the processor as a notification of the clicking activity. Upon receiving the interrupt, the processor temporarily suspends activity associated with the application in order to service the interrupt, and resumes the suspended activity after completing an interrupt service routine. More often than not, this transaction occurs with little to no perceivable difference to the user. However, some applications and/or tasks are more time sensitive to being suspended. In these cases, if the application and/or task has not been resumed in a timely manner, the user may notice a lag in execution, and subsequently perceive the computing device as underperforming or malfunctioning.